DiSFX 0.1

Disassembler for GSU/GSU-2 aka SuperFX chip.

[Start address HEX] [End address HEX] [-e equ.file] [-s script.file] -c
0 $01f0 -e equ.txt -s script.txt -c


 - Outputs on console

Without using the script, you must specify the start and end address. [Start address] [End address]
Outputs only GSU opcodes.
When using a script, this function is ignored.


EQU table is used only in GSU.
equ_file example:
[Value] = [Description]
$00D0 = varD0

Scripts:
XXXX Dyz [Start Address] [End Address]
XXXX:
     DATA - data
     CODE - GSU opcodes
     SNES - 65816 opcodes
D: 
  b - byte data (yz - amount of data per line, if clear xy = 16)
  w - word data (yz - amount of data per line, if clear xy = 16)
  a - Ascii data
  MX - 8 or 16 bit registers for 65816 
       y = 1: 8 bit accumulator
       y = 0: 16 bit
       z = 1: 8 bit XY register
       z = 0: 16 bit

Exampe:
DATA b    000000 000100 // Output of 16 byte data per line
snes mx00 000100 00010f // Output 65816 a=16 bit, XY = 16bit
data a    00010f 00016b // Output of 16 ascii char per line
code      00016b 000178 // Output GSU opcodes
      
(DATA b    000000 000100)
$00:8000          db $00,$08,$6D,$DC,$DE,$F1,$95,$6B,$4B,$F8,$FE,$8C,$10,$42,$4A,$15
$00:8010          db $D3,$2F,$50,$F2,$9A,$1B,$CD,$80,$A1,$59,$4D,$24,$5F,$6E,$55,$30
$00:8020          db $D4,$8C,$D3,$F9,$16,$4F,$C8,$32,$1C,$BC,$34,$8C,$CA,$78,$44,$91
$00:8030          db $3E,$46,$B8,$BE,$5B,$C5,$98,$E0,$95,$68,$19,$B2,$FC,$B6,$CA,$B6
$00:8040          db $8D,$C5,$04,$51,$B5,$F2,$91,$2A,$27,$E3,$9C,$C6,$E1,$C1,$DB,$5D
$00:8050          db $7A,$AF,$F9,$00,$AF,$8F,$46,$EF,$2E,$F6,$A3,$35,$A3,$6D,$A8,$87
$00:8060          db $02,$EB,$19,$5C,$14,$91,$8A,$4D,$45,$A6,$4E,$B0,$AD,$D4,$A6,$71
$00:8070          db $5E,$A1,$29,$32,$EF,$31,$6F,$A4,$46,$3C,$02,$25,$AB,$4B,$88,$9C
$00:8080          db $0B,$38,$2A,$92,$8A,$E5,$49,$92,$4D,$3D,$62,$C4,$87,$6A,$3F,$C5
$00:8090          db $C3,$56,$60,$CB,$71,$65,$AA,$F7,$B5,$71,$50,$FA,$6C,$07,$FF,$ED
$00:80A0          db $81,$E2,$4F,$6B,$70,$A6,$67,$F1,$18,$DF,$EF,$78,$C6,$3A,$3C,$52
$00:80B0          db $80,$03,$B8,$42,$8F,$E0,$91,$E0,$51,$CE,$A3,$2D,$3F,$5A,$A8,$72
$00:80C0          db $3B,$21,$9F,$5F,$1C,$8B,$7B,$62,$7D,$C4,$0F,$46,$C2,$FD,$36,$0E
$00:80D0          db $6D,$E2,$47,$11,$A1,$5D,$BA,$57,$F4,$8A,$14,$34,$7B,$FB,$1A,$24
$00:80E0          db $11,$2E,$34,$E7,$E8,$4C,$1F,$DD,$54,$25,$D8,$A5,$D4,$6A,$C5,$F2
$00:80F0          db $62,$2B,$27,$AF,$FE,$91,$BE,$54,$76,$DE,$BB,$88,$78,$A3,$EC,$F9
(snes mx00 000100 00010f)
$00:8100 78          SEI
$00:8101 D8          CLD
$00:8102 18          CLC
$00:8103 FB          XCE
$00:8104 E2 30       SEP #$30
$00:8106 A9 80       LDA #$80
$00:8108 8D 00 21    STA $2100
$00:810B 5C BB FF 4E JML $4EFFBB
(data a    00010f 00016b)
$00:810F          db 'Rage/Reality Eng'
$00:811F          db 'ine written by R'
$00:812F          db 'andy Linden. Spe'
$00:813F          db 'cial thanks to m'
$00:814F          db 'y loving wife, J'
$00:815F          db 'odi Harvey. '
(code      00016b 000178)
$00:816B A0 70    ibt r0,#$70
$00:816D 3E       alt2
$00:816E DF       ramb
$00:816F 00       stop
$00:8170 01       nop
$00:8171 60       sub r0
$00:8172 3E       alt2
$00:8173 A0 10    sms ($0020),r0
$00:8175 3E       alt2
$00:8176 A0 6D    sms ($00DA),r0

MopoZ 2018
mailto: gegmopo3@list.ru
